/* 固定弹框宽度 */
#gradeMgmtModal .modal-dialog {
    max-width: 600px;
}

/* 固定列宽 */
#grade-table {
    table-layout: fixed;
    width: 100%;
}

#add-grade-btn {
    min-width: 140px;
}

#grade-table th:first-child, #grade-table td:first-child {
    width: 200px;
}

#grade-table th:last-child, #grade-table td:last-child {
    width: calc(100% - 200px);
}

/* 名称省略和 Tooltip */
.grade-name {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

/* 失焦红边闪烁 */
@keyframes flash-border {
    0% {
        border-color: rgba(255, 0, 0, 1) !important;
    }
    50% {
        border-color: rgba(255, 0, 0, 0) !important;
    }
    100% {
        border-color: rgba(255, 0, 0, 1) !important;
    }
}

.input-invalid {
    animation: flash-border 0.6s ease-in-out 2;
}

#grade-table input {
    border: 1px solid #ced4da;
    transition: border-color .2s;
}
